import Vue from 'vue';
import Vuex from 'vuex';
import axios from "axios";

Vue.use(Vuex);
export default new Vuex.Store({
    state: {
        people: []
    },
    mutations: {
        setPeople(state, people) {
            state.people = people;
        },
        addPerson(state, person) {
            // 假设你有一个单独的方法来添加一个人员，但通常你会重新获取整个列表  
            // 这里只是为了说明mutations的用法  
            state.people.push(person);
        }
    },
    actions: {
        fetchPeople({ commit }) {
            // console.log(1);
            axios.post("http://localhost:3002/competition/staff/list") // 注意使用GET方法获取列表  
                .then(res => {
                    if (res.data && Array.isArray(res.data.list)) {
                        commit('setPeople', res.data.list);
                        console.log(res.data.list);
                    }
                })
                .catch(error => {
                    console.error('Error fetching people:', error);
                });
        },
        // 假设你也有一个action来处理添加人员的请求（但这通常是在B页面触发的）  
        addPerson({ commit }, personData) {
            axios.post("http://localhost:3002/competition/staff/add", personData)
                .then(res => {
                    // 假设添加后，你想立即刷新列表（或者你可能只想添加新的人员到列表中）  
                    this.dispatch('fetchPeople'); // 重新获取整个列表  
                    // 或者，如果你只想添加一个人，并且后端返回了新添加的人员信息，你可以这样做：  
                    // commit('addPerson', res.data.newPerson);  
                })
                .catch(error => {
                    console.error('Error adding person:', error);
                });
        }
    }
});